iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
自我挑戰組

iOS Junior的菜雞之路系列 第 26

TextView AttributesString

  • 分享至 

  • xImage
  •  

今天想分享做出TextView中的超連結的方法
這樣如果要加入超連結到演員的名字上面或是電影的相關詳細細節都可以在另外開一個網頁處理

TextView

新增一個TextView到上面,將Delegate指派完成

@IBOutlet weak titleTextView: UITextView! {
    didSet{
            
                titleTextView.delegate = self
                let attributes = [
                    NSMutableAttributedString.Key.underlineStyle : NSUnderlineStyle.single.rawValue,
                ]
                let attributesString = NSMutableAttributedString(string: "今日推薦", attributes: attributes)
                attributesString.addAttributes([NSMutableAttributedString.Key.link : "https://www.google.com"], range: NSRange(location: 2, length: 2))
                titleTextView.attributedText = attributesString

            }
}

linkAttribute

如果需要單獨新增link字樣的樣式,可以使用linkAttribute來設定

titleTextView.linkAttributes = ...

Extension

extension ExampleViewController: UITextViewDelegate {
    func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
        // 按下這個link之後需要做的動作
        return false
    }
}

坑:
之前在做link觸碰的時候,因為不知道有linkAttributes的設定可以使用,一直在弄一般的Attributes搞的設定link字樣的顏色都是錯誤的,搞了很久才搞定。


上一篇
LocalAuthentication 本地驗證Handler
下一篇
Array避免Crash 小撇步
系列文
iOS Junior的菜雞之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言